/*
 * Copyright (c) 2024-2025 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include "core/components_ng/base/frame_node.h"
#include "core/interfaces/native/utility/converter.h"
#include "arkoala_api_generated.h"

namespace OHOS::Ace::NG::GeneratedModifier {
namespace FrameNodeExtenderAccessor {
Ark_NativePointer ConstructorFrameNodeImpl()
{
    return {};
}
Ark_NativePointer GetDestroyImpl()
{
    return {};
}
void DestroyPeerImpl(Ark_FrameNode peer)
{
    auto peerImpl = reinterpret_cast<FrameNodeExtenderPeerImpl *>(peer);
    if (peerImpl) {
        delete peerImpl;
    }
}
Ark_Boolean IsModifiableImpl(Ark_NativePointer peer)
{
    auto frameNode = reinterpret_cast<FrameNode *>(node);
    CHECK_NULL_VOID(frameNode);
    //auto convValue = Converter::Convert<type>(peer);
    //auto convValue = Converter::OptConvert<type>(peer); // for enums
    // undefinedModelNG::SetIsModifiable(frameNode, convValue);
    return {};
}
void AppendChildImpl(Ark_FrameNode peer,
                     Ark_FrameNode child)
{
}
void InsertChildAfterImpl(Ark_NativePointer peer,
                          Ark_NativePointer child,
                          Ark_NativePointer sibling)
{
    auto frameNode = reinterpret_cast<FrameNode *>(node);
    CHECK_NULL_VOID(frameNode);
    //auto convValue = Converter::Convert<type>(peer);
    //auto convValue = Converter::OptConvert<type>(peer); // for enums
    // undefinedModelNG::SetInsertChildAfter(frameNode, convValue);
}
void RemoveChildImpl(Ark_FrameNode peer,
                     Ark_FrameNode child)
{
}
void ClearChildrenImpl(Ark_FrameNode peer)
{
}
Ark_NativePointer GetChildImpl(Ark_FrameNode peer,
                               const Ark_Number* index,
                               const Ark_Number* expandMode)
{
    return {};
}
Ark_NativePointer GetFirstChildImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_NativePointer GetNextSiblingImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_NativePointer GetPreviousSiblingImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_NativePointer GetParentImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_Int32 GetChildrenCountImpl(Ark_FrameNode peer)
{
    return {};
}
void DisposeImpl(Ark_FrameNode peer)
{
}
Ark_Position GetPositionToWindowImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_Position GetPositionToParentImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_Size GetMeasuredSizeImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_Position GetLayoutPositionImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_String GetIdImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_Number GetUniqueIdImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_String GetNodeTypeImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_Number GetOpacityImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_Boolean IsVisibleImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_Boolean IsClipToFrameImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_Boolean IsAttachedImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_String GetInspectorInfoImpl(Ark_FrameNode peer)
{
    return {};
}
void InvalidateImpl(Ark_FrameNode peer)
{
}
void DisposeTreeImpl(Ark_FrameNode peer)
{
}
Ark_Boolean SetCrossLanguageOptionsImpl(Ark_FrameNode peer,
                                        Ark_Boolean options)
{
    return {};
}
Ark_Boolean GetCrossLanguageOptionsImpl(Ark_FrameNode peer)
{
    return {};
}
void SetMeasuredSizeImpl(Ark_FrameNode peer,
                         const Ark_Size* size)
{
}
void SetLayoutPositionImpl(Ark_FrameNode peer,
                           const Ark_Position* position)
{
}
void MeasureImpl(Ark_FrameNode peer,
                 const Ark_LayoutConstraint* constraint)
{
}
void LayoutImpl(Ark_FrameNode peer,
                const Ark_Position* position)
{
}
void SetNeedsLayoutImpl(Ark_FrameNode peer)
{
}
Ark_Position GetPositionToScreenImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_Position GetPositionToWindowWithTransformImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_Position GetPositionToParentWithTransformImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_Position GetPositionToScreenWithTransformImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_NativePointer GetFrameNodeByKeyImpl(const Ark_String* name)
{
    return {};
}
Ark_Number GetIdByFrameNodeImpl(Ark_NativePointer node)
{
    auto frameNode = reinterpret_cast<FrameNode *>(node);
    CHECK_NULL_VOID(frameNode);
    //auto convValue = Converter::Convert<type>(node);
    //auto convValue = Converter::OptConvert<type>(node); // for enums
    // undefinedModelNG::SetGetIdByFrameNode(frameNode, convValue);
    return {};
}
void MoveToImpl(Ark_FrameNode peer,
                Ark_FrameNode targetParent,
                const Ark_Number* index)
{
}
Ark_Number GetFirstChildIndexWithoutExpandImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_Number GetLastChildIndexWithoutExpandImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_NativePointer GetAttachedFrameNodeByIdImpl(const Ark_String* id)
{
    return {};
}
Ark_NativePointer GetFrameNodeByIdImpl(const Ark_Number* id)
{
    return {};
}
Ark_NativePointer GetFrameNodeByUniqueIdImpl(const Ark_Number* id)
{
    return {};
}
void ReuseImpl(Ark_FrameNode peer)
{
}
void RecycleImpl(Ark_FrameNode peer)
{
}
Ark_NativePointer GetFrameNodePtrImpl(Ark_FrameNode node)
{
    return {};
}
Ark_NativePointer CreateTypedFrameNodeImpl(const Ark_String* type)
{
    return {};
}
Ark_NativePointer CreateByRawPtrImpl(Ark_NativePointer ptr)
{
    auto frameNode = reinterpret_cast<FrameNode *>(node);
    CHECK_NULL_VOID(frameNode);
    //auto convValue = Converter::Convert<type>(ptr);
    //auto convValue = Converter::OptConvert<type>(ptr); // for enums
    // undefinedModelNG::SetCreateByRawPtr(frameNode, convValue);
    return {};
}
Ark_NativePointer UnWrapRawPtrImpl(Ark_NativePointer ptr)
{
    auto frameNode = reinterpret_cast<FrameNode *>(node);
    CHECK_NULL_VOID(frameNode);
    //auto convValue = Converter::Convert<type>(ptr);
    //auto convValue = Converter::OptConvert<type>(ptr); // for enums
    // undefinedModelNG::SetUnWrapRawPtr(frameNode, convValue);
    return {};
}
Ark_UICommonEvent GetCommonEventImpl(Ark_FrameNode peer)
{
    return {};
}
Ark_NativePointer GetRenderNodeImpl(Ark_NativePointer peer)
{
    auto frameNode = reinterpret_cast<FrameNode *>(node);
    CHECK_NULL_VOID(frameNode);
    //auto convValue = Converter::Convert<type>(peer);
    //auto convValue = Converter::OptConvert<type>(peer); // for enums
    // undefinedModelNG::SetGetRenderNode(frameNode, convValue);
    return {};
}
Array_Float64 ConvertPointImpl(Ark_FrameNode peer,
                               Ark_FrameNode node,
                               const Ark_Vector2* vector2)
{
    return {};
}
} // FrameNodeExtenderAccessor
const GENERATED_ArkUIFrameNodeExtenderAccessor* GetFrameNodeExtenderAccessor()
{
    static const GENERATED_ArkUIFrameNodeExtenderAccessor FrameNodeExtenderAccessorImpl {
        FrameNodeExtenderAccessor::ConstructorFrameNodeImpl,
        FrameNodeExtenderAccessor::GetDestroyImpl,
        FrameNodeExtenderAccessor::DestroyPeerImpl,
        FrameNodeExtenderAccessor::IsModifiableImpl,
        FrameNodeExtenderAccessor::AppendChildImpl,
        FrameNodeExtenderAccessor::InsertChildAfterImpl,
        FrameNodeExtenderAccessor::RemoveChildImpl,
        FrameNodeExtenderAccessor::ClearChildrenImpl,
        FrameNodeExtenderAccessor::GetChildImpl,
        FrameNodeExtenderAccessor::GetFirstChildImpl,
        FrameNodeExtenderAccessor::GetNextSiblingImpl,
        FrameNodeExtenderAccessor::GetPreviousSiblingImpl,
        FrameNodeExtenderAccessor::GetParentImpl,
        FrameNodeExtenderAccessor::GetChildrenCountImpl,
        FrameNodeExtenderAccessor::DisposeImpl,
        FrameNodeExtenderAccessor::GetPositionToWindowImpl,
        FrameNodeExtenderAccessor::GetPositionToParentImpl,
        FrameNodeExtenderAccessor::GetMeasuredSizeImpl,
        FrameNodeExtenderAccessor::GetLayoutPositionImpl,
        FrameNodeExtenderAccessor::GetIdImpl,
        FrameNodeExtenderAccessor::GetUniqueIdImpl,
        FrameNodeExtenderAccessor::GetNodeTypeImpl,
        FrameNodeExtenderAccessor::GetOpacityImpl,
        FrameNodeExtenderAccessor::IsVisibleImpl,
        FrameNodeExtenderAccessor::IsClipToFrameImpl,
        FrameNodeExtenderAccessor::IsAttachedImpl,
        FrameNodeExtenderAccessor::GetInspectorInfoImpl,
        FrameNodeExtenderAccessor::InvalidateImpl,
        FrameNodeExtenderAccessor::DisposeTreeImpl,
        FrameNodeExtenderAccessor::SetCrossLanguageOptionsImpl,
        FrameNodeExtenderAccessor::GetCrossLanguageOptionsImpl,
        FrameNodeExtenderAccessor::SetMeasuredSizeImpl,
        FrameNodeExtenderAccessor::SetLayoutPositionImpl,
        FrameNodeExtenderAccessor::MeasureImpl,
        FrameNodeExtenderAccessor::LayoutImpl,
        FrameNodeExtenderAccessor::SetNeedsLayoutImpl,
        FrameNodeExtenderAccessor::GetPositionToScreenImpl,
        FrameNodeExtenderAccessor::GetPositionToWindowWithTransformImpl,
        FrameNodeExtenderAccessor::GetPositionToParentWithTransformImpl,
        FrameNodeExtenderAccessor::GetPositionToScreenWithTransformImpl,
        FrameNodeExtenderAccessor::GetFrameNodeByKeyImpl,
        FrameNodeExtenderAccessor::GetIdByFrameNodeImpl,
        FrameNodeExtenderAccessor::MoveToImpl,
        FrameNodeExtenderAccessor::GetFirstChildIndexWithoutExpandImpl,
        FrameNodeExtenderAccessor::GetLastChildIndexWithoutExpandImpl,
        FrameNodeExtenderAccessor::GetAttachedFrameNodeByIdImpl,
        FrameNodeExtenderAccessor::GetFrameNodeByIdImpl,
        FrameNodeExtenderAccessor::GetFrameNodeByUniqueIdImpl,
        FrameNodeExtenderAccessor::ReuseImpl,
        FrameNodeExtenderAccessor::RecycleImpl,
        FrameNodeExtenderAccessor::GetFrameNodePtrImpl,
        FrameNodeExtenderAccessor::CreateTypedFrameNodeImpl,
        FrameNodeExtenderAccessor::CreateByRawPtrImpl,
        FrameNodeExtenderAccessor::UnWrapRawPtrImpl,
        FrameNodeExtenderAccessor::GetCommonEventImpl,
        FrameNodeExtenderAccessor::GetRenderNodeImpl,
        FrameNodeExtenderAccessor::ConvertPointImpl,
    };
    return &FrameNodeExtenderAccessorImpl;
}

}
